import { Http } from './http';//引入 http 请求封装
/* 从 用户信息 store(pinia) 中导入用户信息 类型定义 */
import { type UserInfo, type MenuItem } from '@/store/modules/user-info';
/**
 * 登录接口传入参数
 */
export interface Login {
  user_name: string;
  password: string;
}

export const loginApi = {
  /**
   * 登录接口
   * @param params 登录参数
   * @returns 登录响应数据
   */
  login: async(params: Login) => {
    const ret: UserInfo = await Http.post('/login', params);
    /* 登录成功；取出 res 中的 meun_list ，进行整理，将 1，2级存入 menu_list，其他级别存入buttons_list  */
    const res = ret.records;
    const list = res.menu_list as unknown as MenuItem[];
    const menu_list: MenuItem[] = [];
    const buttons_list: MenuItem[] = [];
    list.forEach(item => {
      const path_length = item.module_path.split(',').length;
      if (path_length > 2) {
        buttons_list.push(item);
      } else {
        menu_list.push(item);
      }
    });
    res.menu_list = menu_list;//菜单列表
    res.buttons_list = buttons_list;//按钮列表
    //console.log("menu_list:", menu_list);
    //console.log("buttons_list:", buttons_list);
    //console.log("登录响应:", res);

    return res;
  },
};
